7fb552f4f7df3dbe04ecfa0d5afc62e58822f462,source/com/intellij/psi/impl/source/resolve/reference/impl/providers/JavaClassReference.java,JavaClassReference,processPackage,#PsiPackage#,226

Before Change


  }

  private Object[] processPackage(final PsiPackage aPackage) {
    final PsiPackage[] subPackages = aPackage.getSubPackages();
    final PsiClass[] classes = aPackage.getClasses();
    final Map<CustomizableReferenceProvider.CustomizationKey, Object> options = getOptions();
    if (options != null) {
      final ArrayList<Object> list = new ArrayList<Object>(Arrays.asList(subPackages));
      final boolean instantiatable = JavaClassReferenceProvider.INSTANTIATABLE.getBooleanValue(options);
      final boolean concrete = JavaClassReferenceProvider.CONCRETE.getBooleanValue(options);
      final boolean notInterface = JavaClassReferenceProvider.NOT_INTERFACE.getBooleanValue(options);
      for (PsiClass clazz: classes) {
        if (isClassAccepted(clazz, instantiatable, concrete, notInterface)) {
          list.add(clazz);
        }
      }
      return list.toArray();
    }
    return ArrayUtil.mergeArrays(subPackages, classes, Object.class);
  }

  private static boolean isClassAccepted(final PsiClass clazz, final boolean instantiatable, final boolean concrete, final boolean notInterface) {

After Change


  private Object[] processPackage(final PsiPackage aPackage) {
    final ArrayList<Object> list = new ArrayList<Object>();
    final int startOffset = StringUtil.isEmpty(aPackage.getName()) ? 0 : aPackage.getName().length() + 1;
    for (final PsiPackage subPackage : aPackage.getSubPackages()) {
      final String shortName = subPackage.getQualifiedName().substring(startOffset);
      if (JavaPsiFacade.getInstance(subPackage.getProject()).getNameHelper().isIdentifier(shortName)) {
        list.add(subPackage);